6

项目构建工具

目前主流有三种构建工具,包括Maven,GradleBuildr。其中Maven比较老了的,当然也是目前使用最多的。但是Gradle和Buildr是后起之秀,已有超越Maven的存在,尤其是Spring迁移到Gradle之后。
本人之前一直听说,但一直没有能够去系统学习类似于Maven这种自动化构建工具,学生党,视野严重受限。。。。
写本文的原因是,起初准备学习Nutz框架,去学习Web开发,然后看到Nutz官方文档中使用Maven构建和测试Nutz。于是就索性去学习下Maven,本着实用的原则,先学习Maven,之后有时间再学习Gradle。

安装

本人比较懒,只对自己搜索到写的比较好的文章进行一个总结。
1. Maven安装,从下载到安装每一步都有图文说明,详细的不能再详细了,小白必备。
2. eclipse Maven插件安装,该文与上文是同一个作者所写,任然是图文并茂,非常详细,并且详解了如何使用link去安装eclipse插件,不得不为作者的细心所佩服,不说了,仍然是小白必备。

测试

maven 5分钟 maven3 快速入门指南,该文对于安装过程比较精简,但之所以写在这里,是因为这片文章对于如何使用Maven进行新建项目,编译、运行、测试等过程都写的非常详细。

主要几条命令:
1. 打包

mvn package,打包该程序为一个jar包或者war包。

2.测试

java -cp target/nameofjar.jar javamain

其中-cp命令是用于运行一个jar包并指定该jar包的main方法所在类。nameofjar.jar是指项目在target目录下打包项目生成的jar包,替换为自己的jar包名即可,另外javamain是指该jar的main方法所在类,包含该类的包名和类名。
例如:

java -cp target/my-maven-test-1.0-SNAPSHOT.jar com.oschina.test.App

3.转换为Eclipse项目

mvn eclipse:eclipse

执行完成后,在Eclipse中导入。Eclipse可能提示pom.xml有错误,并且问题列表中显示如下的问题

Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-jar-plugin:maven-plugin:2.3.2:runtime Cause: error in opening zip file pom.xml /hellomaven line 1 Maven Project Build Lifecycle Mapping Problem

此时,你只需要在项目上->右键->Maven->Upgrade Project即可消除该错误。

仓库

Maven仓库,这篇文章同样写的比较详细,对Maven的仓库进行了详细的说明,想要进一步了解Maven的仓库的同学可以好好了解一下。
Maven3入门应用讲座,这是一个百度文库上的PPT,该PPT从整体上对Maven框架什么的进行完整的阐述,也可以作为了解入门使用,当然最好的还是官方文档。

安装过程中需要注意的问题

设置仓库目录

第一次安装完后,拷贝安装目录下的conf/setting.xml文件到$HOME/.m2/目录下,并配置localRepository,maven库默认是c盘下的。所以本人强烈建议修改repo目录,因为后期可能会有大量的库文件会被下载到该目录下,直接导致C盘过大,另外也可以避免重装系统格式C盘导致的库丢失,需要重新下载等问题。配置方式为直接输入repo本地地址,比如我的仓库地址为F:\Programing\maven_repo,直接如下输入即可。

    <localRepository>F:\Programing\maven_repo</localRepository>

网络配置

在安装完后,使用

    mvn help:system

这个操作会出现Downloading 等信息,如果网络不好的比如GreatWall的原因导致的一直下载失败,这个时候就轮到强大的Goagent就登场了,顺带Goagent安装教程
使用Goagent后,下载速度蹭蹭的。继续配置maven网络,打开.m2/setting.xml文件,按照如下的方式修改Proxies标签。

    <proxies>    
        <proxy>
        <id>optional</id>
        <active>true</active>
        <protocol>http</protocol>
        <username></username>
        <password></password>
        <host>127.0.0.1</host>
        <port>8087</port>
        <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>

另外Eclipse在安装maven后,也会去下载一堆东西,这个时候还是很卡。同样的方式,进入Eclipse的配置菜单Window->Preference->General->Networking connection.
设置Proxy entries,配置如下两项
Schema Host Port
HTTP | 127.0.0.1 |8087
HTTPS | 127.0.0.1 | 8087
同时选中SOCKS,点击Clear,否则依旧上不了网。

pacage等过程中出现的missing 某某类的问题

我在package的过程中,出现ERROR,找到第一行的ERROR,定位错误信息时missing org.codehaus.plexus.util.XmpParse....神马的。于是我进入的repo找到plexus包,发现这里真没有util这个包。按理说maven应该自动更新repo的啊,于是我就去maven的中央仓库上找,然后写了一个pom包含了该依赖,还是不行。我想原因是可能是本身网络问题,导致的maven包没下载完,但maven似乎认为该包没有问题。
解决方法就是删除本地的plexus包,然后重新mvn package即可,maven就会重新下载,并且能够编译通过。


Kylin_Mountain
487 声望13 粉丝

少年不识愁滋味,爱上层楼。